package cn.biplam.common.bean.systemManage.privi;

import cn.biplam.common.bean.Bean;
import cn.biplam.common.client.OperatorResult;
import cn.biplam.common.wrapper.ErrorMessage;

/**
 *  菜单管理操作
 * @author XiaoRuxing Dec 8, 20098:12:40 PM
 * @version 1.0
 */
public abstract class MenuManageBean extends Bean{

	/**
	 *  创建菜单
	 * @param parentId     父亲节点ID
	 * @param parentOpType 父亲节点操作类型
	 * @param menuName     菜单名称
	 * @param menuDesc     菜单描述
	 * @param menuPicPath  菜单路径
	 * @param menuActionId 菜单跳转动作ID
	 * @return 操作结果:创建是否成功;节点ID
	 * @throws ErrorMessage 
	 */
	public abstract OperatorResult insert(
			String parentId,
			String parentOpType,
			String menuName, 
			String menuDesc,
			String menuPicPath,
			String menuActionId) throws ErrorMessage;
	
	/**
	 *  修改菜单信息
	 * @param menuId        菜单ID
	 * @param menuName      菜单名称
	 * @param menuDesc		菜单描述
	 * @param menuPicPath	菜单图标路径
	 * @param menuActionId  菜单动作ID
	 * @return 操作结果
	 * @throws ErrorMessage 
	 */
	public abstract OperatorResult update(String menuId,
			String menuName, 
			String menuDesc,
			String menuPicPath,
			String menuActionId) throws ErrorMessage;
	
	/**
	 *  删除菜单
	 * @param menuId 菜单ID
	 * @return 操作结果
	 * @throws ErrorMessage 
	 */
	public abstract OperatorResult delete(String menuId) throws ErrorMessage;
	
	/**
	 *  获取菜单管理操作实例
	 * @param userId 用户ID
	 * @return 菜单管理操作实例
	 */
	public static MenuManageBean getInstance(String userId) throws ErrorMessage{
		return (MenuManageBean)get(MenuManageBean.class.getSimpleName(), userId);
	}
}
